package ProyectoX.Source.Movimientos;

import java.awt.Point;

import ProyectoX.Source.Naves.NaveEnemiga;

/**
 * Hilo Que realiza los movimientos de las naves CazaLigero
 * @author Guido
 *
 */
public class MovimientosCazaL extends Movimientos {
	
	/**
	 * Constructor del hilo que mueve los "Caza Ligeros"
	 * @param fac Factor que varia para que no se superpongan naves.
	 */
	public MovimientosCazaL(int fac){
		factor = fac;
	}
	
	public void preparar() {
		this.nave.setLocation(factor, 0-this.nave.getHeight());
	}

	public void jugar() {
		this.start();
	}
	
	public void run() {
		dormir(3000);
		Point pos = this.nave.getLocation();
		
		while( pos.y < nave.getHeight() ) { //Aparecer en pantalla
			dormir(100);
			pos = sur(nave,pos,8);
		}
		
		while (!nave.estaMuerto()) { 
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { //Moverse todo a la izquierda
					dormir(60);
					juego.graficaDisparoEnemigo(nave);
					pos = oeste(nave,pos,8);
					verSiPego();
					verSiChoco();
				
			}			
			while( pos.y < 6*nave.getHeight() && (!nave.estaMuerto()) ) { //Moverse hacia abajo en diagonal
					dormir(60);
					pos = sudEste(nave,pos,8,8);
					verSiPego();
					verSiChoco();
			}
			
			while( pos.x < this.juego.getWidth() - ( this.nave.getWidth()+ nave.getWidth()/2 )  && (!nave.estaMuerto()) ) { //Moverse todo a la derecha	
					dormir(60);
					juego.graficaDisparoEnemigo(nave); juego.repaint();
					pos = este(nave,pos,8);
					verSiPego();
					verSiChoco();	
			}
			
			while( pos.y > 2*nave.getHeight() && (!nave.estaMuerto()) ) { //Moverse hacia arriba
					dormir(60);
					juego.graficaDisparoEnemigo(nave);
					pos = norte(nave,pos,8);
					verSiPego();
					verSiChoco();
			}
			
			while( pos.x > 0 && (!nave.estaMuerto()) ) { // Moverse todo a la izquierda
					dormir(60);
					juego.graficaDisparoEnemigo(nave); 
					juego.repaint();
					pos = oeste(nave,pos,8);
					verSiPego();
					verSiChoco();	
			}
			
			while( pos.y > 0  && (!nave.estaMuerto())) { //subir hasta la parte superior de la pantalla
					dormir(60);
					juego.graficaDisparoEnemigo(nave);
					pos = norte(nave,pos,8);
					verSiPego();
					verSiChoco();
			}			
			while( pos.x < this.juego.getWidth() - ( this.nave.getWidth()+ nave.getWidth()/2 )  && (!nave.estaMuerto())) { //Moverse todo a la derecha	
					dormir(60);
					juego.graficaDisparoEnemigo(nave); 
					pos = este(nave,pos,8);
					verSiPego();
					verSiChoco();
			}
		
		}
		juego.sacarNave((NaveEnemiga)nave);
		juego.repaint();
	}
	
	

}
